package com.hua.base;

import java.util.ArrayList;
import java.util.List;
/*
SubClass 为 SuperClass 的子类，SubClass 重写了 SuperClass 的 func() 方法。其中：
子类方法访问权限为 public，大于父类的 protected。
子类的返回类型为 ArrayList<Integer>，是父类返回类型 List<Integer> 的子类。
子类抛出的异常类型为 Exception，是父类抛出异常 Throwable 的子类。
子类重写方法使用 @Override 注解，从而让编译器自动检查是否满足限制条件。
 */
public class SubClass extends SuperClass{
    @Override
    public ArrayList<Integer> func() throws Exception {
        return new ArrayList<>();
    }
}
/*
在调用一个方法时，先从本类中查找看是否有对应的方法，如果没有再到父类中查看，看是否从父类继承来。
否则就要对参数进行转型，转成父类之后看是否有对应的方法。总的来说，方法调用的优先级为：
this.func(this)
super.func(this)
this.func(super)
super.func(super)
 */